1. Field of the Invention
The invention concerns an expert system with an inference engine, a rule base containing rules for the operation of the expert system and an explanation system for producing an explanation of the operation of the expert system.
2. Background
Expert systems, or knowledge-based systems, are being increasingly used to help in a variety of fields, such as the diagnosis of illness or identification of faults in a machine. They use whatever facts are available to either produce a result or confirm a suspected result. In carrying out the reasoning a number of pre-programmed rules, called a rule base, are used which are developed from the knowledge of experts in the field in which the expert system operates. These rules are processed by what is usually termed an `inference engine`.
A number of different tools are known for allowing the development of an expert system. The PROLOG Language and IBM KnowledgeTool (trademarks of IBM Corp.) are two well-known tools. U.S. Pat. No. 4,803,641 (Hardy et al) also describes a tool for developing an expert system.
Two types of mechanism are most usually employed in the inference engine in order to carry out the reasoning process. An inference engine with a forward chaining procedure starts with an initial set of facts and develops from this initial set as many further facts as possible. An inference engine with a backward chaining procedure on the other hand is goal-oriented. It starts with a premise (goal) which must be given at the beginning of the procedure and then tries to see whether the given facts confirm this goal. In European Patent Application EP91105698.4, an inference engine is described in which the forward-chaining and backward-chaining methods are integrated.
In addition to knowing the result of the analysis, the user is often interested in knowing how and why the inference engine came to the result that it did. This requires the presence of an explanation system to produce an explanation of the reasoning that was carried out. The user may also be interested in hypothetical possibilities, such as what would happen if certain other facts were given, or he may be interested in knowing why the inference engine did not come to a certain conclusion. Such questions might also be answered in an explanation system. A survey of explanation systems and possible approaches is given in the article "Explanation in Intelligent Systems" by C. Ellis which was published in "Expert Knowledge and Explanation: the knowledge-language interface" edited by C. Ellis, Ellis Horwood, Chichester, 1989.
In the simplest expert systems, explanation systems merely involved a listing of all the rules that were `fired` (i.e., used) during the analysis. An example of such a system is the MYCIN system which was developed to assist a physician who was not an expert in antibiotics with the diagnosis and treatment of bacterial blood infections. The MYCIN system is described in the book "Rule-based expert systems: the MYCIN Experiments of the Stanford Programming Project", edited by B. G. Buchanan and E. H. Shortliffe, Addison-Wesley, Reading, Mass., 1984.
However, as expert systems become increasingly complicated, such a procedure is inefficient since many hundreds of rules may be fired during the course of the reasoning process. In addition, the comprehensibility of the explanation for the average user decreases as he has to search among the large number of rules displayed in order to find the explanation that he is searching for. Finally, since complete explanations are stored for every rule fired, the performance of the system is diminished since a number of duplicate explanations may be stored.
A further problem encountered when using explanation systems in an expert system was identified by C. Millet and M. Gilloux in their article "A Study of the Knowledge Required for Explanation in Expert Systems" published in the "Proceedings of the Fifth Conference on Artificial Intelligence Applications (CAIA)", Mar. 6-10, 1989, Miami, Fla., pps. 83-90 and published by the IEEE Computer Society Press. They realized that in existing implementations of expert systems part of the knowledge that should be transferred was not communicated. They identified two types of uncommunicated knowledge: `missing knowledge` and `implicit knowledge`. Missing knowledge is that knowledge which was used by the expert in designing the rules for the expert system which is, however, not required during the search for a solution. Implicit knowledge is the knowledge of which the expert may not be aware that he possesses but nonetheless he `implicitly` assumes when he is designing the rules for the expert system. An example of such implicit knowledge is the way in which the rule is expressed. While the wording may be clear for the expert, the average user of the system may fail to appreciate the significance of expressing the rule in one way rather than in another way. Their solution to this problem was to build another knowledge base on top of the existing rule base which did not change the reasoning approach of the system but was only limited to explanatory purposes. The inclusion of this extra knowledge base reduces the performance of the system substantially since, in addition to carrying out the reasoning process, the expert system has to fetch from the extra knowledge base the required explanations.
R. Rubinoff in his article "Explaining Concepts in Expert Systems: the CLEAR System" published in "Artificial Intelligence Applications: The Engineering of Knowledge-based Systems: Proceedings of the Second Conference, Miami Beach, Fla., Dec. 11-13, 1985", pps. 416-421, edited by C. R. Weisbin and published by the IEEE CS Press/North Holland, 1985, identified a further need that users of expert systems required when they were confused about what the system was asking. He suggested `generalized` rules be added to the rule base. These rules themselves could be further generalized, thus, creating a hierarchy of rules. Whenever several rules for explaining a concept that the user will not understand are selected and these rules are all grouped together in a generalized rule, then the generalized rule will be displayed instead of the several individual rules. This type of explanation system, however, requires the developer to develop increasingly abstract rules which may or may not be helpful to the understanding of the reasoning process.
Further types of explanation systems are known. They, however, often require special adaptations of the rule base to incorporate the explanation system. This adaptation alters the structure of the rule base and as a result, can not be easily incorporated into existing rule bases.